// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.google.zxing.qrcode.decoder;
// Referenced classes of package com.google.zxing.qrcode.decoder:
// Version, ErrorCorrectionLevel
final class b
{
private final int a;
private final byte b[];
private b(int i, byte abyte0[])
{
a = i;
b = abyte0;
}
static b[] a(byte abyte0[], Version version, ErrorCorrectionLevel errorcorrectionlevel)
{
Version.ECBlocks ecblocks;
b ab[];
int j1;
int k1;
int l1;
if (abyte0.length != version.getTotalCodewords())
{
throw new IllegalArgumentException();
}
ecblocks = version.getECBlocksForLevel(errorcorrectionlevel);
Version.ECB aecb[] = ecblocks.getECBlocks();
int i = aecb.length;
int j = 0;
int k = 0;
for (; j < i; j++)
{
k += aecb[j].getCount();
}
ab = new b[k];
int l = aecb.length;
int i1 = 0;
int k5;
for (j1 = 0; i1 < l; j1 = k5)
{
Version.ECB ecb = aecb[i1];
k5 = j1;
for (int l5 = 0; l5 < ecb.getCount();)
{
int i6 = ecb.getDataCodewords();
int j6 = i6 + ecblocks.getECCodewordsPerBlock();
int k6 = k5 + 1;
ab[k5] = new b(i6, new byte[j6]);
l5++;
k5 = k6;
}
i1++;
}
k1 = ab[0].b.length;
l1 = -1 + ab.length;
_L6:
if (l1 >= 0 && ab[l1].b.length != k1) goto _L2; else goto _L1
_L1:
int i2;
int j2;
int k2;
int l2;
i2 = l1 + 1;
j2 = k1 - ecblocks.getECCodewordsPerBlock();
k2 = 0;
l2 = 0;
_L4:
if (k2 >= j2)
{
break; /* Loop/switch isn't completed */
}
int l4 = l2;
for (int i5 = 0; i5 < j1;)
{
byte abyte3[] = ab[i5].b;
int j5 = l4 + 1;
abyte3[k2] = abyte0[l4];
i5++;
l4 = j5;
}
k2++;
l2 = l4;
continue; /* Loop/switch isn't completed */
_L2:
l1--;
continue; /* Loop/switch isn't completed */
if (true) goto _L4; else goto _L3
_L3:
for (int i3 = i2; i3 < j1;)
{
byte abyte2[] = ab[i3].b;
int k4 = l2 + 1;
abyte2[j2] = abyte0[l2];
i3++;
l2 = k4;
}
for (int j3 = ab[0].b.length; j2 < j3;)
{
int k3 = 0;
int l3 = l2;
while (k3 < j1)
{
int i4;
byte abyte1[];
int j4;
if (k3 < i2)
{
i4 = j2;
} else
{
i4 = j2 + 1;
}
abyte1 = ab[k3].b;
j4 = l3 + 1;
abyte1[i4] = abyte0[l3];
k3++;
l3 = j4;
}
j2++;
l2 = l3;
}
return ab;
if (true) goto _L6; else goto _L5
_L5:
}
int a()
{
return a;
}
byte[] b()
{
return b;
}
}